Add gtk_constraint_layout_remove_constraint
authorMatthias Clasen <mclasen@redhat.com>
Wed, 26 Jun 2019 03:40:03 +0000 (03:40 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Sun, 30 Jun 2019 22:42:44 +0000 (23:42 +0100)
Otherwise, you can't do many interesting things.

gtk/gtkconstraintlayout.c
gtk/gtkconstraintlayout.h

index 6cd6a7c70e7ab9ca116e744986f8c2068a42905a..ac07219d4f0928f41373d94788f0e5a2d87dd954 100644 (file)
@@ -1106,3 +1106,23 @@ gtk_constraint_layout_add_constraint (GtkConstraintLayout *manager,
 
   g_hash_table_add (manager->constraints, constraint);
 }
+
+/**
+ * gtk_constraint_layout_remove_constraint:
+ * @manager: a #GtkConstraintLayout
+ * @constraint: a #GtkConstraint
+ *
+ * Removes @constraint from the layout manager,
+ * so that it no longer influences the layout.
+ */
+void
+gtk_constraint_layout_remove_constraint (GtkConstraintLayout *manager,
+                                         GtkConstraint       *constraint)
+{
+  g_return_if_fail (GTK_IS_CONSTRAINT_LAYOUT (manager));
+  g_return_if_fail (GTK_IS_CONSTRAINT (constraint));
+  g_return_if_fail (gtk_constraint_is_attached (constraint));
+
+  gtk_constraint_detach (constraint);
+  g_hash_table_remove (manager->constraints, constraint);
+}
index bd6528da3b08f334713b630eee639bd04fad19cb..b5eba7b125deaf447d9402f69aafa6c16f662280 100644 (file)
@@ -41,6 +41,9 @@ GtkLayoutManager *      gtk_constraint_layout_new               (void);
 GDK_AVAILABLE_IN_ALL
 void                    gtk_constraint_layout_add_constraint    (GtkConstraintLayout *manager,
                                                                  GtkConstraint       *constraint);
+GDK_AVAILABLE_IN_ALL
+void                    gtk_constraint_layout_remove_constraint (GtkConstraintLayout *manager,
+                                                                 GtkConstraint       *constraint);
 
 /**
  * GtkConstraintLayoutChild: